#pragma once

#include <set>
#include <QtGlobal>

namespace util {
  //
  // util::NonlinearTransform
  //

  class NonlinearTransform : public std::unary_function<qreal, qreal> {
  public:
    typedef std::pair<qreal, qreal> TPair;
    typedef std::set<TPair>         TContainer;

  public:
    explicit NonlinearTransform(const TContainer &Transform_ = TContainer());
    const TContainer &GetTransform() const;
    result_type operator()(argument_type) const;

  private:
    TContainer mTransform;
  };

} // namespace util {